<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>

    // 字符匹配符   => 匹配集合中的任意一个
    // [xyz]  匹配 x , y , z 中任意一个  (x或y或z)
    // [0-9]  匹配数字 [0123456789]
    // [a-z]  匹配小写 [qwertyuiopasdfghjklzxcvbnm]
    // [A-Z]  匹配大写 [QWERTYUIOPASDFGHJKLZXCVBNM]
    // [0-9a-zA-Z_]  匹配数字 字母 下划线

    // 取反  => 在字符匹配符的最前面使用^表示取反
    // [^xyz]  匹配除 x , y , z 以外任意一个 
    // [^0-9]  匹配非数字
    // [^a-z]  匹配非小写
    // [^A-Z]  匹配非大写 
    // [^0-9a-zA-Z_]  匹配非数字 字母 下划线

    // 注意:
    // 在字符匹配符的最前面使用^表示取反
    // 字符匹配符中 除 [  ] ^ - 转义字符 => 都是普通字符

    // var str = "?";
    // var reg = /[+*/%?]/
    // console.log(reg.test(str));


    // 字符簇 => 官方给定范围修饰   digit  write space
    // \d  匹配数字   等价于  [0-9]
    // \D  匹配非数字 等价于  [^0-9]
    // \w  匹配数字 字母 下划线   等价于 [0-9a-zA-Z_]
    // \W  匹配非数字 字母 下划线   等价于 [^0-9a-zA-Z_]
    // \s  匹配空白字符 (空格 换行符 回车符等)
    // \S  匹配非空白字符 (除空白字符以外的其他字符)
    // .   匹配任意字符(除换行符以外)
    // [\u4e00-\u9fa5]  匹配中文




    // 用户名:  由 数字 字母 _ 组成, 6-12位, 且不能以数字开头

    // var user = "$123123";
    var user = "哈哈哈哈哈哈哈";

    // var reg = /^[0-9a-zA-Z_]{6,12}$/;  // 由 数字 字母 _ 组成, 6-12位  (可以以数字开头)
    // var reg = /^[^0-9][0-9a-zA-Z_]{5,11}$/;  // 由 数字 字母 _ 组成, 6-12位  (非数字开头 -> 非数字范围太大 -> 不准确)
    // var reg = /^[a-zA-Z_][0-9a-zA-Z_]{5,11}$/;  // 由 数字 字母 _ 组成, 6-12位

    // var reg = /^[a-zA-Z_$][0-9a-zA-Z_$]{5,11}$/;  // 由 数字 字母 _ $ 组成, 6-12位  非数字开头
    // var reg = /^[a-zA-Z_$][\w$]{5,11}$/;  // 由 数字 字母 _ $ 组成, 6-12位  非数字开头
    // var reg = /^[a-zA-Z_$\u4e00-\u9fa5][\w$\u4e00-\u9fa5]{5,11}$/;  // 由 数字 字母 _ $ 组成, 6-12位  非数字开头

    // console.log(reg.test(user));


    // 匹配手机号  => 纯数字 11位  1开头  第二位(3 4 5 6 7 8 9)

    var phone = "17386242527";
    var reg = /^1[3-9]\d{9}$/;
    console.log(reg.test(phone));




</script>

</html>